package com.yfs.cloud.commons;

/**
* @Company: 影法師工作室
* @Description: 后端统一封装数据返回前端json格式 {code : , msg : , data : }  
* @author 影法師  
* @date 2020年8月24日 下午4:13:01 
* @version V1.0
 */
public class Result {

	/**状态码*/
	private Integer code;

	/**对状态码的描述*/
	private String msg;

	/**本次返回的数据*/
	private Object data;

	public Integer getCode() {
		return code;
	}

	public String getMsg() {
		return msg;
	}

	public Object getData() {
		return data;
	}

	/**
	 * 成功, 没data数据
	 * 
	 * @return
	 */
	private static Result suc() {
		Result result = new Result();
		result.setResultCode(ResultCode.SUCCESS);
		return result;
	}

	/**
	 * 成功, 有data数据
	 * 
	 * @return
	 */
	public static Result suc(Object data) {
		Result result = suc();
		result.data = data;
		return result;
	}

	/**
	 * 失败, 指定 status、desc
	 * 
	 * @param status
	 * @param desc
	 * @return
	 */
	static Result fail(Integer code, String msg) {
		Result result = new Result();
		result.code = code;
		result.msg = msg;
		return result;
	}

	/**
	 * 失败, 指定ResultCode枚举
	 * 
	 * @param resultCode
	 * @return
	 */
	static Result fail(ResultCode resultCode) {
		Result result = new Result();
		result.setResultCode(resultCode);
		return result;
	}

	/**
	 * 把ResultCode枚举转换为Result
	 * 
	 * @param code
	 */
	private void setResultCode(ResultCode code) {
		this.code = code.getCode();
		this.msg = code.getMsg();
	}

}
